package com.iceberg.dao.database;

import java.util.List;
import java.util.Map;

import com.iceberg.model.database.Column;
import com.iceberg.model.database.Schema;
import com.iceberg.model.database.Table;
import com.iceberg.model.database.View;
import com.iceberg.model.jqgrid.JqGridTable;


public interface DatabaseDAO{
  
  List<Schema> getSchemaList(String databaseName);

  List<Table> getTableList(String catalogName,String schemeName);
  
  Table getTable(String catalogName,String schemeName, String tableName);


  List<View> getViewList(String catalogName,String schemeName);

  List<Column> getColumnList(String catalogName, String schemaName, String tableName);
  List<Column> getPrimaryKeyColumnList(String catalogName, String schemaName, String tableName);
  List<Column> getForeignKeyColumnList(String catalogName, String schemaName, String tableName);
  List<Column> getReferencedForeignKeyColumnList(String catalogName, String schemaName, String tableName);
  
  
  JqGridTable getTableData(String tableName,  JqGridTable jqGridTable);
  
  Boolean dataUpdate(String tableName, Map<String, Object> parameters);
  Boolean dataCreate(String tableName, Map<String, Object> parameters);
  Boolean dataDelete(String tableName, Map<String, Object> parameters);
 
}